package test;

/**
 * @Author Doris.Lee
 * @Description
 * @Locate test.A
 * @Datetime 2020-05-25 14:49
 * @Version 1.0
 */
public class A {

    //Version1
//    private C c;    //应该向V4写成接口

//    public void print(){//A对C有依赖
////        C c = new C();
////        c.print();
//
//        //容器把对象给A，而不是A要对象
//        this.c.print();
//
//        //interface
////        System.out.println("This is Class A");
//    }



    //Version2 接口(不加容器是不能注入的）
    private IC ic;  //主动给对象

    //DI 构造注入
    public A(IC ic){

    }

    public A(){

    }

    public void print(){
        this.ic.print();//体现依赖注入DI
    }

    //DI 属性注入
    public void setIc(IC ic) {
        this.ic = ic;
    }
}
